#pragma once

enum eTools {
	//Ground Tools
	E_TOOL_RANDOM,
	E_TOOL_FLAT,
	E_TOOL_CAVE,

	E_COSMETICS = 9,
	//Cosmetic Tools
	E_TOOL_GRASS,
	E_TOOL_STONE,

	E_OBJECTS = 19,
	//Object Tools
	E_TOOL_TREES,
	E_TOOL_ORE1,

	E_TOOL_SIZE
};

class _Generator;

typedef void (_Generator::*Tool)(void);

#define STARTING_HEIGHT 500
#define BLOCK_IMPORTANT_TYPE	BLOCK_SOLIDS			//If type is greater than this it is something generation pays attention to


//Messages
#define MOVE_UP_CHUNK			0
#define MOVE_DOWN_CHUNK			1
#define MOVE_LEFT_CHUNK			2
#define MOVE_RIGHT_CHUNK		3
#define CHUNK_COMPLETE			4
#define RECHECK_CURRENT_HEIGHT	5